#!/bin/bash

sudo ./system_backup.sh

if [ -f /etc/X11/xorg.conf.d/40-libinput.conf ]; then
sudo rm -rf /etc/X11/xorg.conf.d/40-libinput.conf
fi
#if [ ! -d /etc/X11/xorg.conf.d ]; then
#sudo mkdir -p /etc/X11/xorg.conf.d
#fi
#sudo cp ./usr/mhs35-overlay.dtb /boot/overlays/
#sudo cp ./usr/mhs35-overlay.dtb /boot/overlays/mhs35.dtbo

#root_dev=`grep -oPr "root=[^\s]*" /boot/cmdline.txt | awk -F= '{printf $NF}'`
#if test "$root_dev" = "/dev/mmcblk0p7";then
#sudo cp -rf ./boot/config-noobs-nomal.txt ./boot/config.txt.bak
#else
#sudo cp -rf ./boot/config-nomal.txt ./boot/config.txt.bak
#sudo echo "hdmi_force_hotplug=1" >> ./boot/config.txt.bak
#fi

source ./system_config.sh
#sudo sed -i -e 's/dtoverlay=vc4-kms-v3d/#dtoverlay=vc4-kms-v3d/' ./boot/config.txt.bak
sudo echo "hdmi_force_hotplug=1" >> ./boot/config.txt.bak
sudo echo "hdmi_cvt 300 300 60 1 0 0 0" >> ./boot/config.txt.bak
sudo echo "hdmi_group=2" >> ./boot/config.txt.bak
sudo echo "hdmi_mode=1" >> ./boot/config.txt.bak
sudo echo "hdmi_mode=87" >> ./boot/config.txt.bak
sudo echo "display_rotate=0" >> ./boot/config.txt.bak
sudo echo "gpio=6,19,5,26,13,21,20,16=pu" >> ./boot/config.txt.bak
sudo cp -rf ./boot/config.txt.bak /boot/config.txt

#sudo cp -rf ./usr/99-calibration.conf-mhs35-90  /etc/X11/xorg.conf.d/99-calibration.conf
#sudo cp -rf ./usr/99-fbturbo.conf  /usr/share/X11/xorg.conf.d/99-fbturbo.conf
#if test "$root_dev" = "/dev/mmcblk0p7";then
#sudo cp ./usr/cmdline.txt-noobs /boot/cmdline.txt
#else
#sudo cp ./usr/cmdline.txt /boot/
#fi
#sudo cp ./usr/inittab /etc/
#sudo cp ./boot/config-mhs35.txt /boot/config.txt
sudo touch ./.have_installed
echo "gpio:resistance:LCD154:90:300:300" > ./.have_installed

#FBCP install
if [ -d ./fbcp-ili9341 ]; then
sudo rm -rf ./fbcp-ili9341
fi
wget --spider -q -o /dev/null --tries=1 -T 10 https://github.com
if [ $? -eq 0 ]; then
#sudo cp -rf ./usr/99-fbturbo-fbcp.conf  /usr/share/X11/xorg.conf.d/99-fbturbo.conf
sudo apt-get install cmake 2> error_output.txt
result=`cat ./error_output.txt`
echo -e "\033[31m$result\033[0m"
grep -q "^E:" ./error_output.txt && exit
#sudo rm -rf rpi-fbcp
sudo git clone https://github.com/juj/fbcp-ili9341.git
sudo mkdir ./fbcp-ili9341/build
cd ./fbcp-ili9341/build/
sudo cmake -DSPI_BUS_CLOCK_DIVISOR=10 -DWAVESHARE_ST7789VW_HAT=ON -DBACKLIGHT_CONTROL=OFF -DSTATISTICS=0 -DUSE_DMA_TRANSFERS=OFF ..
sudo make -j
sudo install fbcp-ili9341 /usr/local/bin/fbcp
cd - > /dev/null
sudo cp -rf ./etc/rc.local /etc/rc.local
else
type fbcp > /dev/null 2>&1
if [ $? -eq 1 ]; then
sudo cp -rf ./usr/fbcp-ili9341 ./
sudo mkdir ./fbcp-ili9341/build
cd ./fbcp-ili9341/build/
sudo cmake -DSPI_BUS_CLOCK_DIVISOR=10 -DWAVESHARE_ST7789VW_HAT=ON -DBACKLIGHT_CONTROL=OFF -DSTATISTICS=0 -DUSE_DMA_TRANSFERS=OFF ..
sudo make -j
sudo install fbcp-ili9341 /usr/local/bin/fbcp
cd - > /dev/null
sudo cp -rf ./etc/rc.local /etc/rc.local
fi
fi

#KEY install
wget --spider -q -o /dev/null --tries=1 -T 10 http://mirrors.zju.edu.cn
if [ $? -eq 0 ]; then
sudo apt-get install python-xlib 2> error_output.txt
else
dpkg -l | grep python-xlib
if [ $? -eq 1 ]; then
sudo dpkg -i -B ./python-xlib_0.23-2_all.deb 2> error_output.txt
fi
fi
result=`cat ./error_output.txt`
echo -e "\033[31m$result\033[0m"
grep -q "^E:" ./error_output.txt && exit
grep -q "error:" ./error_output.txt && exit

wget --spider -q -o /dev/null --tries=1 -T 10 https://pypi.org
if [ $? -eq 0 ]; then
sudo pip install PyMouse 2> error_output.txt
result=`cat ./error_output.txt`
echo -e "\033[31m$result\033[0m"
grep -q "^E:" ./error_output.txt && exit
grep -q "error:" ./error_output.txt && exit
else
pip list | grep PyMouse
if [ $? -eq 1 ]; then
sudo tar xvzf ./PyMouse-1.0.tar.gz
sudo python PyMouse-1.0/setup.py install
fi
fi

if [ ! -d ~/.config/autostart ]; then
sudo mkdir -p ~/.config/autostart
fi

if [ ! -f ~/.config/autostart/local.desktop ]; then
sudo cp -rf ./usr/local.desktop ~/.config/autostart
fi
#evdev install
#nodeplatform=`uname -n`
#kernel=`uname -r`
#version=`uname -v`
#if test "$nodeplatform" = "raspberrypi";then
#echo "this is raspberrypi kernel"
#version=${version##* }
#version=${version#*#}
#echo $version
#if test $version -lt 2017;then
#echo "reboot"
#else
#echo "need to update touch configuration"
#sudo dpkg -i -B ./xserver-xorg-input-evdev_1%3a2.10.6-1+b1_armhf.deb 2> error_output.txt
#sudo apt-get install xserver-xorg-input-evdev  2> error_output.txt
#result=`cat ./error_output.txt`
#echo -e "\033[31m$result\033[0m"
#grep -q "error:" ./error_output.txt && exit
#sudo cp -rf /usr/share/X11/xorg.conf.d/10-evdev.conf /usr/share/X11/xorg.conf.d/45-evdev.conf
#echo "reboot"
#fi
#else
#echo "this is not raspberrypi kernel, no need to update touch configure, reboot"
#fi

sudo sync
sudo sync
sleep 1
if [ $# -eq 1 ]; then
sudo ./rotate.sh $1
elif [ $# -gt 1 ]; then
echo "Too many parameters"
fi

echo "reboot now"
sudo reboot
